名词解释
服务商/vendor:接入收钱吧支付平台Web API 或 SDK 的开发者
服务商序列号/vendor_sn:服务商序列号
服务商密钥/vendor_key:服务商密钥
应用ID/appid:服务商appid
激活码/code:终端激活码,用于激活终端,获取终端号和终端密钥。
终端/terminal:指实际进行交易的媒介系统,可以为实体收银机系统、智能设备里的APP、线上网页(e.g. 线上购物、会员充值等)
终端号/terminal_sn:终端序列号
终端密钥/terminal_key:终端密钥,支付类接口使用终端序列号和终端密钥进行签名
调用接口传入信息有没有加密校验?
有的。
收钱吧服务器
域名:https://vsi-api.shouqianba.com
端口:443
什么是收钱吧终端?
指实际进行交易的媒介系统,可以为实体收银机系统、智能设备里的APP、线上网页(e.g. 线上购物、会员充值等)
每个门店下都允许存在多个终端。
device_id是什么?
设备指纹device_id唯一标识一台设备的编号,如Android设备的IMEI,IOS设备的identifierForVendor。
激活接口常见问题:
激活码使用说明
每一个激活码都有可激活次数限制,同一个激活码,每调用一次激活接口,可激活次数就减一,当可激活次数为0,激活码将失效。
激活码是否可作为固定的参数存储起来?
不可以!激活码是与门店相对应的,每一个激活码都有可激活次数限制。将激活码作为固定参数存储很容易发生激活码失效等问题。
另外,共用激活码不便于商户日后在商户系统中对账。
激活码是不是每一台终端都需要一个?
激活码是与门店相对应的,同一门店多终端可以共用一个激活码。此时,同一个激活码每次调用激活接口,返回的终端号和终端密钥是不一样的。
一个设备(同一设备号device_id)调用了多次激活,均激活成功,均生成了终端号,这样会不会有影响?
不会。
激活码失效问题?
激活码失效问题一般由以下几个原因:
1)服务商已经使用完激活码的使用次数(激活码的使用次数都是有限的,如果激活码是测试使用,可以询问收钱吧的技术支持人员来重置激活次数,如果是正式上线使用,请联系收钱吧重新申请激活码)。
2)服务商未在激活码的使用有效期内使用。解决方法:重新申请新的激活码。
激活接口的作用
收钱吧所有交易都需要终端号和终端密钥。
激活终端是为了拿到交易接口签名需要的参数(终端号和终端密钥),激活完一台终端,开发者需要把终端号和终端密钥信息持久化保持,以后每日签到更新终端密钥。
不管是支付(B扫C)还是预下单(C扫B)都需要激活后才能调用。
一个终端只需激活一次,之后调用支付类接口(不论支付还是预下单)都不需要再激活。
不需要每次进入程序时都调用激活函数。
收钱吧不对同一个终断的激活次数做限制,开发者需要自行判断终端是否已激活。
服务商参数vendor_sn和vendor_key是不变的,建议写死在程序里,以后直接输入激活码激活终端。
签到接口常见问题:
签到接口的作用
一个密钥每个自然日会过期。签到的作用是更新终端密钥,获取每日最新密钥。开发者需要把最新的terminal_key保存下来。
SDK 会自动完成签到,不需要单独签到。
Web API 建议每自然天执行第一笔核心支付接口调用时,自动执行签到操作。
签到失败问题?
如果签到失败,一般都是更换设备导致。解决方法:重新申请新的激活码。
支付接口常见问题:
client_sn是什么?支付失败后重新进行支付可以延用之前的client_sn吗?
client_sn:商户系统订单号,必须在商户系统内唯一。
支付失败后重新进行支付不可以延用之前的client_sn。
一笔交易中,前台订单号是唯一的,例如0001,提交支付失败后,再次提交支付请求,订单号就不能是0001了。
轮询
pay接口何时发起轮询:如果pay同步返回的order_status不是最终状态,就需要马上发起轮询。轮询时间可以在3~5s,总时长控制在40~50s左右。
pay接口返回:biz_response.result_code是指一个动作的状态。biz_response.data罗列订单信息,biz_response.data.order_status是指订单状态。
precreate接口何时发起轮询:
Web API接入:在得到预下单成功的结果后,即可向收钱吧服务器发起轮询请求。
预下单成功:biz_response.result_code="PRECREATE_SUCCESS" or biz_response.data.order_status="CREATED") 收钱吧目前所有预下单的订单有效支付时长约为90秒,若超时仍未支付,收钱吧会自动取消该订单;因此轮询时间请控制在100-120秒左右。 轮询的间隔建议为前30秒内2秒一次,之后5秒一次。
SDK接入:如果是有UI模式,SDK会查询预支付结果,不需要额外写程序查询,如果是无UI模式,则需要轮询支付结果。
C扫B模式生成的二维码有两种:
第一种是没有有效期的。长期使用的二维码可以用wap支付实现
第二种是有有效期的。precreate接口生成的二维码的有效期:4min
哪些状态是订单最终状态
- PAID
- PAY_CANCELED
- REFUNDED
- PARTIAL_REFUNDED
- CANCELED
何时调用撤单接口(cancel)?
客户端发起支付请求以后没有收到结果或订单不是最终状态,且在有效时间内也轮询订单依然不是最终状态,则发起自动撤单。该动作类似于POS机的冲正。
每次支付失败都需要调用撤单接口(cancel)吗?
只有在规定时间内轮询得到的订单状态不为最终状态才需要自动冲正。
C扫B的模式,二维码可以不依赖终端生成吗?
可以。可采用系统对接
方式实现。
系统对接
在商户没有终端的情况下,直接在服务器管理终端号和终端密钥。商户前端只与商户后端通信,后端服务器发现是某个前端的支付请求,就将这笔交易对应到收钱吧的终端,利用这个终端的terminal_sn和terminal_key向收钱吧服务端发起请求。
收钱吧所有交易都需要终端号和终端密钥。开发者可以选择所有支付都算作一个终端发起的请求,也可以采用“前端1->收钱吧终端1,前端2->收钱吧终端2”的方式。后者的好处在于便于商户日后在商户系统
中对账。
支付成功后支付宝、微信显示信息分别是什么?
支付时需要传入商品名称,这个一方面是保留业务信息,另一方面是会展示在消费者的付款终端上。
支付成功后,微信APP上,商品信息显示的是商品名称。
是否支持官方优惠金额和商户优惠金额的回传?
支付完成之后,收钱吧会返回订单原始金额,消费者支付金额和商家实收金额(Windows SDK暂不支持)
商户折扣=total_amount-paid_amount
如果没有退款,net_amount=total_amount
退款可以在订单支付完成后多久以内可以提交请求?
三个月以内都可以进行退款。
撤单接口常见问题
手动撤单和自动撤单有什么区别?
手动撤单和自动撤单的区别只是撤单目的不同,实际执行的业务逻辑是完全一样的。
撤单和退款有什么区别?
退款接口,不限制退款次数,可操作至剩余金额为0。退款成功后,手续费按照退款金额占订单金额比例系数乘以订单总手续费进行手续费退还。
撤单接口,一笔订单只能在当天进行一次撤单,撤单的时候是全额退款,包括支付手续费。进行过退款的订单不能撤单。
手动撤单可以在订单支付完成后多久以内可以提交请求?
过了当天无法撤单。
退款、撤单接口是今天生成的订单,只能当天退款和撤单吗?
退款和撤单我们这边都没有时间限制,不过支付宝和微信有相关限制。
在使用微信退款时报错时:
由于微信系统业务变更,现新签约的微信正式商户(即是微信支付特约商户),默认都是没有退款权限的(即不能微信退款)。微信支付特约商户若想开通退款权限,需要将退款权限授权给服务商(即收钱吧)。 另服务商没有代该特约商户发起API退款的权限,需该特约商户进行授权操作,相关授权流程及操作请登陆网址: http://kf.qq.com/faq/120911VrYVrA150929imAfuU.html操作。
具体操作: 1、登陆微信支付特约商户将退款权限授权给服务商网址: http://kf.qq.com/faq/120911VrYVrA150929imAfuU.html 2、点击查看《退款指令授权证明书》; 微信官方有提供文本格式的《退款指令授权证明书》模板,直接把文本复制到WORD文档上,填写之后打印,并加盖公章; 3、点击【点击这里】,此处是特约商户需将退款权限授权给服务商的提交入口,提交需要填写的内容和加盖公章的《退款指令授权证明书》即可;
授权申请中会用到的服务商信息如下: 服务商名称:上海喔噻互联网科技有限公司 服务商商户号:1238313502
异常业务如何测试
网络超时可以用网络调试工具模拟
业务不成功可以故意不支付或者借记卡内余额不足实现
一些小概率事件,如业务端返回500,难以模拟,那么修改下判断条件,覆盖想测试的代码路径确定控制逻辑正确即可。
支付宝是不是采用的2.0协议?
是的,采用支付宝当面付2.0接口协议。
操作退款后,退款金额多久能退到消费者?退款到消费者的哪个账户?
如果订单可以做退款处理,收钱吧会立即退款,退款何时到达消费者账户需要看支付宝和微信的处理时间,可能存在延迟。考虑信用卡套现的因素,退款应该从哪来回哪去。
如果一笔交易中,重复收取了消费者的两笔钱,商户收银员应该找谁确认是否重复收款?确认之后如何退款?
这种情况就是出现了“单边账”,这时,请认准“以收钱吧结果为准”的原则。因为收银员也无法确认是否收了两笔,遇到这种情况,商户只能认准我们的交易结果
交易成功后,在退货期内来退货,商场会要求消费者提供小票、发票等凭证,还可以要求消费者提供其他付款凭证信息吗?
交易成功后,拿交易小票或发票退货视商家自己的标准而定。我们的系统不存在退货期。
对接收钱吧接口时,打印小票尽量显示收钱吧返回的订单号
例如:78**